﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsFormsApplication4
{
    public partial class frmTaskManager : Form
    {
        Process[] process;
        /// <summary>
        /// lấy ra các process đang chạy trong máy đưa vào list box
        /// </summary>
        private void GetProcess()
        {
            process = Process.GetProcesses();
            if (int.Parse(lblnumberProcess.Text) != process.Length)
            {
                ///hàm clear sẽ xóa sạch trong list box
                lstProcess.Items.Clear();
                ///cập nhật lại bằng mảng sử dụng vòng lặp for
                for (int i = 0; i < process.Length; i++)
                {
                    ///gọi list box lstProcess và lấy tên các ProcessName thứ i
                    lstProcess.Items.Add(process[i].ProcessName);
                }
                ///lấy ra tổng các process đang chạy
                lblnumberProcess.Text = process.Length.ToString();
            }
        }
        /// <summary>
        /// Hủy 1 process đang chạy trong máy
        /// </summary>
        /// <param name="index">vị trí của process</param>
        private void KillProcess(int index)
        {
            process[index].Kill();
        }

        public frmTaskManager()
        {
            InitializeComponent();
        }
        /// <summary>
        /// gọi hàm GetProcess để lấy ra tên các process
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmTaskManager_Load(object sender, EventArgs e)
        {
            GetProcess();
        }
        private void timer1_Tick(object sender, EventArgs e)///đếm ngay ra số process chạy thêm
        {
            GetProcess();
        }

        private void btnEndProcess_Click(object sender, EventArgs e)///Gọi hàm để thoát chương trình ứng dụng
        {
            KillProcess(lstProcess.SelectedIndex);
        }

        private void killToolStripMenuItem_Click(object sender, EventArgs e)///Dùng Kill bằng chuột phải
        {
            KillProcess(lstProcess.SelectedIndex);
        }
       
    }
}
